package com.bedrock.project.inside.service;

import java.util.List;

import com.bedrock.project.inside.entity.Interviewer;
import com.bedrock.project.inside.entity.RecruitEntity;
import com.bedrock.project.inside.vo.request.InterviewerFlowVo;
import com.bedrock.project.inside.vo.response.InterviewEmailVo;

/**
 * 招聘Service接口
 *
 * @author bedrock
 * @date 2020-04-07
 */
public interface IRecruitService {
    /**
     * 查询招聘
     *
     * @param id 招聘ID
     * @return 招聘
     */
    public RecruitEntity selectRecruitEntityById(Long id);

    /**
     * 查询招聘列表
     *
     * @param recruitEntity 招聘
     * @return 招聘集合
     */
    public List<RecruitEntity> selectRecruitEntityList(RecruitEntity recruitEntity);

    /**
     * 新增招聘
     *
     * @param recruitEntity 招聘
     * @return 结果
     */
    public int insertRecruitEntity(RecruitEntity recruitEntity);

    /**
     * 修改招聘
     *
     * @param recruitEntity 招聘
     * @return 结果
     */
    public int updateRecruitEntity(RecruitEntity recruitEntity);

    /**
     * 批量删除招聘
     *
     * @param ids 需要删除的招聘ID
     * @return 结果
     */
    public int deleteRecruitEntityByIds(Long[] ids);

    /**
     * 删除招聘信息
     *
     * @param id 招聘ID
     * @return 结果
     */
    public int deleteRecruitEntityById(Long id);

    /**
     * 面试分配
     *
     * @param interviewer
     * @throws Exception
     */
    public String viewerset(Interviewer interviewer) throws Exception;

    /**
     * 面试流程流转
     *
     * @param flowVo
     * @return
     * @throws Exception
     */
    public String flowTo(InterviewerFlowVo flowVo) throws Exception;

    /**
     * 简历上传
     *
     * @param url
     * @param recruitId
     * @param createBy
     */
    public void updateVitaeUrl(String url, Long recruitId, Long createBy);

    /**
     * 周报发送
     * @return
     */
    List<InterviewEmailVo> sumWeeklyInterView();
}
